Skip to content

Conversation

@easyhooon
Copy link
Contributor

@easyhooon easyhooon commented Nov 3, 2025

🔗 관련 이슈

📙 작업 설명

  • release 환경에서 Recomposition 추적 로그가 출력되지 않도록 설정

🧪 테스트 내역 (선택)

  • 주요 기능 정상 동작 확인
  • 브라우저/기기에서 동작 확인
  • 엣지 케이스 테스트 완료
  • 기존 기능 영향 없음

💬 추가 설명 or 리뷰 포인트 (선택)

  • 오랜만에 release로 빌드해봤을 때 알수 없는 에러 발생 팝업이 뜨는데, 관련해서 QA 적용 이후 배포전에, release 빌드, 내부 테스트를 통해
    원인을 확인해보면(진짜 문제가 맞는지) 좋을 것 같습니다.
    -> user/me api에 DTO에 notificationEnabled가 추가되어 발생하는 문제 같네요

Summary by CodeRabbit

릴리스 노트

  • Chores
    • 디버그 빌드에서 Compose 안정성 분석 도구를 활성화하여 앱 성능 최적화를 지원하도록 초기화 로직을 추가했습니다.

release 환경에서 Recomposition 추적 로그가 출력되지 않도록 설정
@coderabbitai
Copy link

coderabbitai bot commented Nov 3, 2025

Walkthrough

Compose Stability Analyzer 로깅을 디버그 환경에서만 활성화하기 위해 Android Startup 초기화자를 도입합니다. AndroidManifest.xml에 메타데이터를 추가하고 ComposeStabilityAnalyzerInitializer 클래스를 구현하여 앱 시작 시 초기화합니다.

Changes

Cohort / File(s) Summary
Android Manifest 초기화 설정
app/src/main/AndroidManifest.xml
InitializationProvider 내에 ComposeStabilityAnalyzerInitializer에 대한 메타데이터 항목 추가 (com.ninecraft.booket.initializer.ComposeStabilityAnalyzerInitializer, androidx.startup)
Compose Stability Analyzer 초기화자
app/src/main/kotlin/com/ninecraft/booket/initializer/ComposeStabilityAnalyzerInitializer.kt
Initializer을 구현하는 새로운 클래스 생성; create() 메서드에서 BuildConfig.DEBUG 값에 따라 ComposeStabilityAnalyzer 활성화; dependencies()는 빈 리스트 반환

Sequence Diagram

sequenceDiagram
    participant App as App Startup
    participant Startup as Startup Framework
    participant Initializer as ComposeStabilityAnalyzerInitializer
    participant Analyzer as ComposeStabilityAnalyzer

    App->>Startup: Initialization begins
    Startup->>Initializer: create(context)
    activate Initializer
    Initializer->>Analyzer: setEnabled(BuildConfig.DEBUG)
    activate Analyzer
    Analyzer-->>Initializer: configured
    deactivate Analyzer
    Initializer-->>Startup: initialization complete
    deactivate Initializer
    Startup-->>App: ready
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • 단순한 메타데이터 추가 (한 줄)
  • 표준 Initializer 패턴의 보일러플레이트 구현
  • 복잡한 로직 없음

Poem

🐰 Debug 환경에만 귀 쫑긋!
Compose의 안정성을 들으려면,
Initializer가 시작할 때 활성화—
재컴포지션 추적 로그가 조용히 울려 퍼져,
디버그 시간이 더 밝아진다! ✨

Pre-merge checks and finishing touches

✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed PR 제목인 "chore: ComposeStabilityAnalyzerInitializer 추가"는 변경 사항과 직접 관련이 있으며, 새로 추가되는 클래스를 명확하게 지칭하고 있습니다. 제목은 주요 변경 사항인 ComposeStabilityAnalyzerInitializer 클래스 추가를 정확하게 반영하고 있으며, 팀원들이 커밋 히스토리를 훑어볼 때 주된 변경 내용을 쉽게 파악할 수 있습니다. 제목이 구현 방식의 세부 사항(Debug 환경에서만 활성화)을 모두 포함하지는 않지만, 이는 예상되는 범위 내입니다.
Linked Issues Check ✅ Passed 연결된 이슈 #206은 Recompose 추적 로그가 Debug 환경에서만 출력되도록 설정을 추가하는 것을 요구합니다. 제출된 변경 사항은 ComposeStabilityAnalyzerInitializer 클래스를 생성하고 이를 AndroidManifest.xml에 등록하여 ComposeStabilityAnalyzer.setEnabled(BuildConfig.DEBUG)를 호출함으로써 이 요구사항을 충족합니다. 이는 Debug 빌드에서만 안정성 분석기를 활성화하고 Release 빌드에서는 비활성화하여, 불필요한 로그 출력과 오류 노출을 방지합니다.
Out of Scope Changes Check ✅ Passed 변경 사항은 이슈 #206의 범위 내에서 벗어나지 않습니다. AndroidManifest.xml의 메타데이터 추가와 ComposeStabilityAnalyzerInitializer 클래스 생성은 모두 Debug 환경에서만 Recompose 추적 로그를 출력하도록 설정하는 요구사항을 구현하기 위한 필수 변경입니다. 이슈와 무관한 변경이나 범위를 벗어난 수정 사항은 없습니다.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch BOOK-419-chore/#206

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
app/src/main/kotlin/com/ninecraft/booket/initializer/ComposeStabilityAnalyzerInitializer.kt (1)

8-16: LGTM! 구현이 PR 목표를 정확히 달성합니다.

BuildConfig.DEBUG를 사용하여 디버그 빌드에서만 Compose Stability Analyzer를 활성화하는 로직이 올바르게 구현되었습니다. 이를 통해 release 빌드에서는 리컴포지션 추적 로그가 출력되지 않습니다.

선택사항: 클래스 문서화 추가

가독성 향상을 위해 클래스에 KDoc 주석을 추가하는 것을 고려해보세요:

+/**
+ * Compose Stability Analyzer를 초기화하는 Startup Initializer.
+ * Debug 빌드에서만 Compose 리컴포지션 추적 로그를 활성화합니다.
+ */
 class ComposeStabilityAnalyzerInitializer : Initializer<Unit> {
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b7a90f1 and 4ec05ef.

📒 Files selected for processing (2)
  • app/src/main/AndroidManifest.xml (1 hunks)
  • app/src/main/kotlin/com/ninecraft/booket/initializer/ComposeStabilityAnalyzerInitializer.kt (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Compose Stability Check
  • GitHub Check: ci-build
🔇 Additional comments (1)
app/src/main/AndroidManifest.xml (1)

48-50: LGTM! 초기화자 등록이 올바르게 추가되었습니다.

ComposeStabilityAnalyzerInitializer를 InitializationProvider에 등록하는 meta-data 엔트리가 기존 초기화자들과 동일한 패턴으로 올바르게 추가되었습니다.

Copy link
Contributor

@seoyoon513 seoyoon513 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM~

@easyhooon easyhooon merged commit 9dcdfbe into develop Nov 3, 2025
7 checks passed
@easyhooon easyhooon deleted the BOOK-419-chore/#206 branch November 3, 2025 05:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOOK-419/chore] Compose Stability Analyzer Logging Debug 환경에서만 출력되도록 설정

3 participants